#ifndef ENGINE_H
#define ENGINE_H


#include "globals.h"
//#include "enginecomponent.h"
#include "aiprocessor.h"
#include <QObject>


class Oscillator;
class Project;
class Transport;
class DBWrapper;
class Mixer;
class Sampler;



class Engine : public  QObject, public AIProcessor
{
    Q_OBJECT
public:
    explicit Engine(DBWrapper & dbwrapper);
    ~Engine();
    void process();
    void setData(PData data);
    Mixer * mixer() const {return mixer_;}
 //   enum {k_midi_devices_amount = 1};
private:
    PData data_;
    Transport * tr_;
    DBWrapper & dbwrapper_;
    Mixer * mixer_;
    Sampler * sampler_;
    PData midi_stack_;
    Oscillator * osc_;
};

#endif // ENGINE_H
